package com.gotop.system.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gotop.common.base.BaseController;
import com.gotop.common.utils.R;
import com.gotop.common.utils.auth.CemUser;
import com.gotop.common.utils.auth.SecureUtil;
import com.gotop.entity.system.Post;
import com.gotop.system.service.system.IPostService;
import com.gotop.vo.system.PostVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperationSupport;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

/**
 * @program: cem
 * @description:
 * @author: superfish
 * @create: 2020-12-25 13:47
 **/
@RestController
@AllArgsConstructor
@RequestMapping("post")
@Api(value = "岗位表", tags = "岗位表接口")
public class PostController extends BaseController {
    private IPostService postService;

    /**
     * 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入post")
    public R<PostVO> detail(Post post) {
        return R.data(null);
    }

    /**
     * 分页 岗位表
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入post")
    public R<IPage<PostVO>> list(Post post) {
        return R.data(null);
    }


    /**
     * 自定义分页 岗位表
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入post")
    public R<IPage<PostVO>> page(PostVO post) {
        return R.data(null);
    }

    /**
     * 新增 岗位表
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入post")
    public R save(@Valid @RequestBody Post post) {
        return R.status(postService.save(post));
    }

    /**
     * 修改 岗位表
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入post")
    public R update(@Valid @RequestBody Post post) {
        return R.status(postService.updateById(post));
    }

    /**
     * 新增或修改 岗位表
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入post")
    public R submit(@Valid @RequestBody Post post) {
        post.setTenantId(SecureUtil.getTenantId());
        return R.status(postService.saveOrUpdate(post));
    }


    /**
     * 删除 岗位表
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.data(null);
    }

    /**
     * 下拉数据源
     */
    @GetMapping("/select")
    @ApiOperationSupport(order = 8)
    @ApiOperation(value = "下拉数据源", notes = "传入post")
    public R<List<Post>> select(String tenantId, CemUser cemUser) {
        return R.data(null);
    }
}
